#include <iostream>
#include <vector>
#include <bitset>

using namespace std;

const int MAX = 2e5 + 5;

// 全局变量
int H, W, N, Q;
vector<bitset<MAX>> rows;
vector<bitset<MAX>> cols;
vector<bool> exists;

// 函数声明


// 读取输入数据
void input() 
{
    cin >> H >> W >> N;
    
    // 初始化数据结构
    rows.resize(H + 1);
    cols.resize(W + 1);
    exists.resize(N + 1, false);
    
    for (int i = 1; i <= N; ++i) 
    {
        int X, Y;
        cin >> X >> Y;
        rows[X].set(Y);
        cols[Y].set(X);
        exists[i] = true;
    }
    
    cin >> Q;
}


// 处理行查询
int find_y(int x) 
{
    int cnt = 0;
    for (int y = 1; y <= W; ++y) 
    {
        if (rows[x].test(y)) {
            cnt++;
            cols[y].reset(x);
            rows[x].reset(y);
        }
    }
    return cnt;
}

// 处理列查询
int find_x(int y) 
{
    int cnt = 0;
    for (int x = 1; x <= H; ++x) 
    {
        if (cols[y].test(x)) 
        {
            cnt++;
            rows[x].reset(y);
            cols[y].reset(x);
        }
    }
    return cnt;
}


// 处理所有查询
void solve() 
{
    while (Q--) {
        int t, x;
        cin >> t >> x;        
        if (t == 1)  // 列查询
        {
            cout << find_y(x) << '\n';
        } 
        else  // 行查询
        {
            cout << find_x(x) << '\n';
        }
    }
}


int main() 
{
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    
    input();
    solve();
    
    return 0;
}
